<?php

namespace App\Http\Controllers;

use Houdunwang\WeChat\WeChat;
use Illuminate\Http\Request;
use Modules\Wx\Entities\WxConfig;
use Modules\Wx\Entities\WxKeyword;
use Modules\Wx\Entities\WxRole;

class WechatController extends Controller
{
    public function __construct()
    {
        $this->volid();
    }
    public function handle(WxConfig $wxConfig){
//        $this->volid($wxConfig);
//        $instance =WeChat::instance('message');
//        $message = $instance->Content;
//        file_put_contents('bbb.php',$message);
        //消息管理模块

        $instance = WeChat::instance('message');

//关注用户扫描二维码事件
//        if ($instance->isTextMsg())
//        {
//            $message  = $instance->getMessage();
//            //向用户回复消息
//            return $instance->text("你发送的内容是".$message->Content);
//        }
//        测试关键词回复
        if ($instance->isTextMsg())
        {
//            获得用户发来的消息
//            $message  = $instance->getMessage();
            $message  = $instance->Content;
            //向用户回复消息
//            $instance->text("你发送的内容是".$message->Content);
            return $this->response($message);
        }

    }

//    测试关键词回复
    public function response($message)
    {
//        用户发来的数据看一下你的关键词表里有没有，如果有就回复随机的一个内容
        if ($keyword=WxKeyword::where('key',$message)->first()){
            $rule = WxRole::find($keyword['role_id']);
            $class = "\Modules\\".$rule['module']."\\Response";
            //通过回调方法找到对应类的对应方法来处理微信回复
            return call_user_func_array([new $class, 'handle'], [$rule]);
        }
    }

    public function volid(){
//        把配置文件引进来，目的是为了后台改变数据的时候能把配置文件覆盖
        $config  = include base_path('config').'/wechat.php';
//        pluck是laravel获取的
        $wxconfig = WxConfig::pluck('value','name')->toArray();
        $config = array_merge($config,$wxconfig);
        WeChat::config($config)->valid();
    }
}